package com.yingdong.tools;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;

public class LuaProxyTemplateGenerator {
	public static void main(String[] args) {
		// 开始设置Freemarker
		Configuration cfg = new Configuration();
		cfg.setDefaultEncoding("UTF-8");
		// 设置模板文件所在的目录
		cfg.setClassForTemplateLoading(LuaProxyTemplateGenerator.class, "/template");
		Writer out = null;
		try {
			// 取得模板文件
			Template t = cfg.getTemplate("ProxyLua.ftl");
			Map root1 = new HashMap();
			
			List root = new ArrayList();
			root1.put("fields", root);
			root.add( "Start");
			root.add( "Awake");
			root.add( "Update");

			root.add( "LateUpdate");
			root.add( "FixedUpdate");
			root.add( "Reset");
			root.add( "OnMouseEnter");
			root.add( "OnMouseOver");
			root.add( "OnMouseExit");
			root.add( "OnMouseDown");
			root.add( "OnMouseUp");
			root.add( "OnMouseUpAsButton");
			root.add( "OnMouseDrag");
			root.add( "OnTriggerEnter");
			root.add( "OnTriggerExit");
			root.add( "OnTriggerStay");
			root.add( "OnCollisionEnter");
			root.add( "OnCollisionExit");
			root.add( "OnCollisionStay");
			root.add( "OnControllerColliderHit");
			root.add( "OnJointBreak");
			root.add( "OnParticleCollision");
			root.add( "OnBecameVisible");
			root.add( "OnBecameInvisible");
			root.add( "OnLevelWasLoaded");
			root.add( "OnEnable");
			root.add( "OnDisable");
			root.add( "OnDestroy");
			root.add( "OnPreCull");
			root.add( "OnPreRender");
			root.add( "OnPostRender");
			root.add( "OnRenderObject");
			root.add( "OnWillRenderObject");
			root.add( "OnGUI");
			root.add( "OnDrawGizmosSelected");
			root.add( "OnDrawGizmos");
			root.add( "OnApplicationPause");
			root.add( "OnApplicationFocus");
			root.add( "OnApplicationQuit");
			root.add( "OnPlayerConnected");
			root.add( "OnServerInitialized");
			root.add( "OnConnectedToServer");
			root.add( "OnPlayerDisconnected");
			root.add( "OnDisconnectedFromServer");
			root.add( "OnFailedToConnect");
			root.add( "OnFailedToConnectToMasterServer");
			root.add( "OnMasterServerEvent");

			out = new FileWriter("src/main/resources/ProxyBind.lua");
			t.process(root1, out);

		} catch (Exception e1) {

			e1.printStackTrace();
		} finally {
			try {
				out.close();
			} catch (IOException e) {

				e.printStackTrace();
			}
		}

	}
}
